
/**一.作业回顾优化 handle(num1,num2,"函数名");
    方案1 改函数名改成(+-* /)
    方案2 模块加入暴露的函数名称
     let count=require("./count");
     count.add;
   二.作业提交：
       有2个码云仓库 1.课件与作业布置 2.作业提交  
**/

/*
  二.buffer:
    说说互联上的数据格式：1.文字 2.音频 3.图片 4.视频 5.excell 6.word 7. md...
     1.文字string 就可以表示， 图片视频...都是二进制文件因js不能满足二进制需求----》buffer
     2.性能 buffer 与数组是类似的结构.js 是脚本语言(编译语言是运行前是先编译成可执行的二进制文件，脚本语言是运行时编译)
     3.buffer 的元素是二进制数据(0101010000),计算机显示为16进制的2位数
     4.计算机中内存最小但未 1bit 0，1 --------，---------，--------， -----------------------------
       8bit=1byte
       1024byte=1kb
       1024kb=1mb
       1024mb=1gb
       1024gb=1tb
     
*/

/**
 * 三.buffer的具体用法
 *    1.调用buffer 是无需引入 require(),因buffer作用于全局对象上，所以无需引入
 *    2.创建一个buffer Buffer.alloc(长度)，创建的空间在内存中是连续的，且不能扩充的
 *    
 *    
 */

// Buffer 和字符串之间进行转换时
 let string ='我 study node';
 let bf = Buffer.from(string);
 //console.log(bf);
 console.log(string.length);//字符长度
 console.log(bf.length);//字节数在utf8中一个汉字占3个字节(utf8编码兼容accii编码,也就是说abc等字符在utf8中也是只占一个字节)

 //如何创建一个buffer,创建的空间在内存中是连续的，且不能扩充的
 //-----------------------------------------------------------
 //一个字节的数值0-255  110000000
 //300二进制 1001，0110，0，当超过255时，会做截断，截断规则从后往前8位
 let bfbuiler=Buffer.alloc(100);

//  bfbuiler[0]=10;
//  bfbuiler[1]=300;
//  console.log(bfbuiler);

 //buffer 的应用场景 todo 待续

 //buffer与js的数组性能对比
 //当前的毫秒数
 let countNum=10000000;
 let startAt= Date.now();
 let bufferObj = Buffer.alloc(countNum);
 for(let i=0;i<countNum;i++){
    bufferObj[i]=255;
 }
 let endAt=Date.now();
 console.log("buffer的耗时:"+(endAt-startAt));

 let numArr=[];
 let startAt2= Date.now();
 for(let i=0;i<countNum;i++){
    numArr[i]=255;
 }
 let endAt2=Date.now();
 console.log("数组的耗时:"+(endAt2-startAt2));
     
 




  

 